package com.ruoyi.sale.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 erp_order
 *
 * @author ruoyi
 * @date 2025-03-10
 */
public class ErpOrder extends BaseEntity
{

    private List<ErpGoodss> goodsList;

    public List<ErpGoodss> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(List<ErpGoodss> goodsList) {
        this.goodsList = goodsList;
    }
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private int id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String sn;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 支付状态 */
    @Excel(name = "支付状态")
    private String paymentStatus;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /** 会员id/企业id/第三方用户id */
    @Excel(name = "会员id/企业id/第三方用户id")
    private String ownerId;

    /** 会员名称/企业名称/第三方用户名称 */
    @Excel(name = "会员名称/企业名称/第三方用户名称")
    private String ownerName;

    /** 会员手机号/企业手机号/第三方用户手机号 */
    @Excel(name = "会员手机号/企业手机号/第三方用户手机号")
    private String ownerMobile;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 仓库id */
    @Excel(name = "仓库id")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 部门id */
    @Excel(name = "部门id")
    private Long deptId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 销售经理id */
    @Excel(name = "销售经理id")
    private Long marketingId;

    /** 销售经理名称 */
    @Excel(name = "销售经理名称")
    private String marketingName;

    /** 销售金额 */
    @Excel(name = "销售金额")
    private BigDecimal totalPrice;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal discountPrice;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal taxPrice;

    /** 应付金额 */
    @Excel(name = "应付金额")
    private BigDecimal payPrice;

    /** 定金金额 */
    @Excel(name = "定金金额")
    private BigDecimal depositPrice;

    /** 附件 */
    @Excel(name = "附件")
    private String attachment;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String type;

    /** 订单来源 */
    @Excel(name = "订单来源")
    private String source;

    /** 订单来源id */
    @Excel(name = "订单来源id")
    private String sourceId;

    /** 配送方式 */
    @Excel(name = "配送方式")
    private String deliveryType;

    /** 物流配送地区id集合 */
    @Excel(name = "物流配送地区id集合")
    private String shipRegionIds;

    /** 物流配送地区名称集合 */
    @Excel(name = "物流配送地区名称集合")
    private String shipRegionNames;

    /** 物流配送详细地址 */
    @Excel(name = "物流配送详细地址")
    private String shipAddress;

    /** 自提门店id */
    @Excel(name = "自提门店id")
    private Long storeId;

    /** 自提门店名称 */
    @Excel(name = "自提门店名称")
    private String storeName;

    /** 是否已出库 */
    @Excel(name = "是否已出库")
    private Integer warehouseOutFlag;

    /** 出库单id */
    @Excel(name = "出库单id")
    private Long warehouseOutId;

    /** 是否已发货 */
    @Excel(name = "是否已发货")
    private Integer shipFlag;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shipTime;

    /** 物流公司id */
    @Excel(name = "物流公司id")
    private Long logisticsCompanyId;

    /** 物流公司名称 */
    @Excel(name = "物流公司名称")
    private String logisticsCompanyName;

    /** 物流单号 */
    @Excel(name = "物流单号")
    private String logisticsTrackingNumber;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private Integer deleted;

    /** 创建者 */
    @Excel(name = "创建者")
    private String creator;

    /** 更新者 */
    @Excel(name = "更新者")
    private String updater;

    public void setId(int id)
    {
        this.id = id;
    }

    public int getId()
    {
        return id;
    }
    public void setSn(String sn)
    {
        this.sn = sn;
    }

    public String getSn()
    {
        return sn;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setPaymentStatus(String paymentStatus)
    {
        this.paymentStatus = paymentStatus;
    }

    public String getPaymentStatus()
    {
        return paymentStatus;
    }
    public void setPaymentTime(Date paymentTime)
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime()
    {
        return paymentTime;
    }
    public void setOwnerId(String ownerId)
    {
        this.ownerId = ownerId;
    }

    public String getOwnerId()
    {
        return ownerId;
    }
    public void setOwnerName(String ownerName)
    {
        this.ownerName = ownerName;
    }

    public String getOwnerName()
    {
        return ownerName;
    }
    public void setOwnerMobile(String ownerMobile)
    {
        this.ownerMobile = ownerMobile;
    }

    public String getOwnerMobile()
    {
        return ownerMobile;
    }
    public void setOrderTime(Date orderTime)
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime()
    {
        return orderTime;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setWarehouseName(String warehouseName)
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName()
    {
        return warehouseName;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }
    public void setMarketingId(Long marketingId)
    {
        this.marketingId = marketingId;
    }

    public Long getMarketingId()
    {
        return marketingId;
    }
    public void setMarketingName(String marketingName)
    {
        this.marketingName = marketingName;
    }

    public String getMarketingName()
    {
        return marketingName;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setDiscountPrice(BigDecimal discountPrice)
    {
        this.discountPrice = discountPrice;
    }

    public BigDecimal getDiscountPrice()
    {
        return discountPrice;
    }
    public void setTaxPrice(BigDecimal taxPrice)
    {
        this.taxPrice = taxPrice;
    }

    public BigDecimal getTaxPrice()
    {
        return taxPrice;
    }
    public void setPayPrice(BigDecimal payPrice)
    {
        this.payPrice = payPrice;
    }

    public BigDecimal getPayPrice()
    {
        return payPrice;
    }
    public void setDepositPrice(BigDecimal depositPrice)
    {
        this.depositPrice = depositPrice;
    }

    public BigDecimal getDepositPrice()
    {
        return depositPrice;
    }
    public void setAttachment(String attachment)
    {
        this.attachment = attachment;
    }

    public String getAttachment()
    {
        return attachment;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setSource(String source)
    {
        this.source = source;
    }

    public String getSource()
    {
        return source;
    }
    public void setSourceId(String sourceId)
    {
        this.sourceId = sourceId;
    }

    public String getSourceId()
    {
        return sourceId;
    }
    public void setDeliveryType(String deliveryType)
    {
        this.deliveryType = deliveryType;
    }

    public String getDeliveryType()
    {
        return deliveryType;
    }
    public void setShipRegionIds(String shipRegionIds)
    {
        this.shipRegionIds = shipRegionIds;
    }

    public String getShipRegionIds()
    {
        return shipRegionIds;
    }
    public void setShipRegionNames(String shipRegionNames)
    {
        this.shipRegionNames = shipRegionNames;
    }

    public String getShipRegionNames()
    {
        return shipRegionNames;
    }
    public void setShipAddress(String shipAddress)
    {
        this.shipAddress = shipAddress;
    }

    public String getShipAddress()
    {
        return shipAddress;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }
    public void setWarehouseOutFlag(Integer warehouseOutFlag)
    {
        this.warehouseOutFlag = warehouseOutFlag;
    }

    public Integer getWarehouseOutFlag()
    {
        return warehouseOutFlag;
    }
    public void setWarehouseOutId(Long warehouseOutId)
    {
        this.warehouseOutId = warehouseOutId;
    }

    public Long getWarehouseOutId()
    {
        return warehouseOutId;
    }
    public void setShipFlag(Integer shipFlag)
    {
        this.shipFlag = shipFlag;
    }

    public Integer getShipFlag()
    {
        return shipFlag;
    }
    public void setShipTime(Date shipTime)
    {
        this.shipTime = shipTime;
    }

    public Date getShipTime()
    {
        return shipTime;
    }
    public void setLogisticsCompanyId(Long logisticsCompanyId)
    {
        this.logisticsCompanyId = logisticsCompanyId;
    }

    public Long getLogisticsCompanyId()
    {
        return logisticsCompanyId;
    }
    public void setLogisticsCompanyName(String logisticsCompanyName)
    {
        this.logisticsCompanyName = logisticsCompanyName;
    }

    public String getLogisticsCompanyName()
    {
        return logisticsCompanyName;
    }
    public void setLogisticsTrackingNumber(String logisticsTrackingNumber)
    {
        this.logisticsTrackingNumber = logisticsTrackingNumber;
    }

    public String getLogisticsTrackingNumber()
    {
        return logisticsTrackingNumber;
    }
    public void setDeleted(Integer deleted)
    {
        this.deleted = deleted;
    }

    public Integer getDeleted()
    {
        return deleted;
    }
    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    public String getCreator()
    {
        return creator;
    }
    public void setUpdater(String updater)
    {
        this.updater = updater;
    }

    public String getUpdater()
    {
        return updater;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sn", getSn())
            .append("status", getStatus())
            .append("paymentStatus", getPaymentStatus())
            .append("paymentTime", getPaymentTime())
            .append("ownerId", getOwnerId())
            .append("ownerName", getOwnerName())
            .append("ownerMobile", getOwnerMobile())
            .append("orderTime", getOrderTime())
            .append("warehouseId", getWarehouseId())
            .append("warehouseName", getWarehouseName())
            .append("deptId", getDeptId())
            .append("deptName", getDeptName())
            .append("marketingId", getMarketingId())
            .append("marketingName", getMarketingName())
            .append("totalPrice", getTotalPrice())
            .append("discountPrice", getDiscountPrice())
            .append("taxPrice", getTaxPrice())
            .append("payPrice", getPayPrice())
            .append("depositPrice", getDepositPrice())
            .append("attachment", getAttachment())
            .append("remark", getRemark())
            .append("type", getType())
            .append("source", getSource())
            .append("sourceId", getSourceId())
            .append("deliveryType", getDeliveryType())
            .append("shipRegionIds", getShipRegionIds())
            .append("shipRegionNames", getShipRegionNames())
            .append("shipAddress", getShipAddress())
            .append("storeId", getStoreId())
            .append("storeName", getStoreName())
            .append("warehouseOutFlag", getWarehouseOutFlag())
            .append("warehouseOutId", getWarehouseOutId())
            .append("shipFlag", getShipFlag())
            .append("shipTime", getShipTime())
            .append("logisticsCompanyId", getLogisticsCompanyId())
            .append("logisticsCompanyName", getLogisticsCompanyName())
            .append("logisticsTrackingNumber", getLogisticsTrackingNumber())
            .append("deleted", getDeleted())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("creator", getCreator())
            .append("updater", getUpdater())
            .toString();

    }
}
